package com.xuxueli.applyModules.commont;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 测试初始化定时器
 */
@Data
public class TaskBasicDTO implements Serializable {


    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @ApiModelProperty(value = "编号")
    private Long id;

    /**
     * 启用状态 0：未启动  1：启动
     */
    @ApiModelProperty(value = "启用状态 0：未启动  1：启动")
    @JsonProperty("enable_status")
    private Integer enableStatus;

    /**
     * 任务编号
     */
    @ApiModelProperty(value = "任务编号")
    @JsonProperty("task_no")
    private String taskNo;

    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    @JsonProperty("task_name")
    private String taskName;

    /**
     * 任务类型 0：定时任务  1：周期任务
     */
    @ApiModelProperty(value = "任务类型 0：定时任务  1：周期任务")
    @JsonProperty("task_type")
    private Integer taskType;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonProperty("create_time")
    private Date createTime;

    /**
     * 服务数量
     */
    @JsonProperty("service_count")
    @ApiModelProperty(value = "服务数量")
    private Integer serviceCount;

    /**
     * 任务状态 0：未执行  1：已完成 2：已暂停 3：启用中 4：已结束
     */
    @ApiModelProperty(value = "任务状态 0：未执行  1：已完成 2：已暂停 3：启用中 4：已结束")
    @JsonProperty("task_status")
    private Integer taskStatus;


    /**
     * 开始时间
     */
    @JsonProperty("time_begin")
    @ApiModelProperty(value = "开始时间")
    private Long timeBegin;

    /**
     * 结束时间
     */
    @JsonProperty("time_end")
    @ApiModelProperty(value = "结束时间")
    private Long timeEnd;


    /**
     * 备注
     */
    @JsonProperty("remark")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 任务类型为定时任务的一次性执行的时间
     */
    @JsonProperty("task_time")
    @ApiModelProperty(value = "任务类型为定时任务的一次性执行的时间")
    private Long taskTime;

    /**
     * 周期类型 0：cron表达式  1：按计算时间 2：按时间方格
     */
    @JsonProperty("cycle_type")
    @ApiModelProperty(value = "周期类型 0：cron表达式  1：按计算时间 2：按时间方格")
    private Integer cycleType;

    /**
     * 执行任务的cron表达式或执行周期
     */
    @ApiModelProperty(value = "执行任务的cron表达式或执行周期")
    @JsonProperty("cycle_cron")
    private String cycleCron;
    
    @JsonIgnore
    private String createBy;

    @ApiModelProperty(value = "是否可下载标识 1、可下载  0、不可下载")
    @JsonProperty("download_flag")
    private Integer downloadFlag;

    @ApiModelProperty(value = "下载文件名")
    @JsonProperty("result_name")
    private String resultName;


}
